Many websites today implement media-rich web pages, for which additional resources such as embedded images and videos sometimes have to be obtained from a variety of content servers for eventual display at a client browser. Once a client computing device (such as a laptop, smartphone, tablet or desktop system) obtains the web page and the associated additional resources, the content may be processed in a number of stages by a software browser application or other client computing device interface. For example, the software browser application may parse the web page to process various elements of HTML (HyperText Markup Language) layout information and references to associated resources, identify and process Cascading Style Sheets (“CSS”) information, process and instantiate various elements of JavaScript code associated with the page, and/or calculate various layout and display properties of the processed content for presentation to a user.
From the perspective of a user of the client computing device, the overall browsing user experience may depend on various factors including the latencies associated with obtaining network content over a communication network, processing embedded resource identifiers, generating requests to obtain embedded resources, and rendering content on the client computing device. At least some of the latencies involved may be dependent on the network routes that are chosen for obtaining the requested web page and associated resources. While route selection decisions are typically opaque to the end-user, the selection of sub-optimal routes may result in significantly lowered customer satisfaction with respect to browsing, which may in turn have negative impacts on the business entities whose web sites are being accessed. The impact of poor latency resulting in part from poor routing decisions may be especially apparent on client computing devices with limited network bandwidth, processing power, or memory such as tablets, smartphones, and the like.
While embodiments are described herein by way of example for several embodiments and illustrative drawings, those skilled in the art will recognize that embodiments are not limited to the embodiments or drawings described. It should be understood, that the drawings and detailed description thereto are not intended to limit embodiments to the particular form disclosed, but on the contrary, the intention is to cover all modifications, equivalents and alternatives falling within the spirit and scope as defined by the appended claims. The headings used herein are for organizational purposes only and are not meant to be used to limit the scope of the description or the claims. As used throughout this application, the word “may” is used in a permissive sense (i.e., meaning having the potential to), rather than the mandatory sense (i.e., meaning must). Similarly, the words “include,” “including,” and “includes” mean including, but not limited to.